package springcloud.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import springcloud.entity.Result;

@SuppressWarnings("all")
@Component
@FeignClient(value = "MEMBER-SERVICE-PROVIDER")
public interface MemberFeignService {
    //定义方法-实现远程调用的接口
    //【该接口与被远程调用的member-service-provider-10000中controller方法中的接口保持一致】
    /**
     * 1. 远程调用的方式是 get
     * 2. 远程调用的url http://MEMBER-SERVICE-PROVIDER/member/query/{id}
     * 3. MEMBER-SERVICE-PROVIDER 就是 服务提供方 在Eureka Server注册的服务名称
     * 4. openfeign 会根据负载均衡来决定调用10000/10002----默认是轮询
     * 5. 因为 openfeign 好处是支持了 springmvc注解 + 接口解耦
     * 注：/member/query/{id}  必须与远程调用的接口保持一致
     */
    @GetMapping("/member/query/{id}")
    public Result queryMemberById(@PathVariable("id") Long id);
}
